package com.colabo.j2ee.web.core.context;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

/**
 * 用于Spring多数据源的DataSource的配置实现类
 * 使用方法
 *  <!--  使用多数据源切换,当需要多种数据源时候需要将下面的开关打开，在每次使用dao方法的时候使用CustomerContextHolder.setCustomerType(“keyName”)来切换Datasource
 *   其中keyName为下面定义的key，以后凡是指向dataSource的引用均指向这个Bean
 *   注意：由于使用JTA事务，那么这里引用的Datasource均是由应用服务器管理的数据源，体现为一个指向一个JNDI的数据源    -->
 *
 *   &lt;bean id="dataSource"     class="com.cib.cap.base.common.spring.DynamicDataSource"&gt;
 *     &lt;property name="targetDataSources"&gt;
 *        &lt;map key-type="java.lang.String"&gt;
 *            &lt;entry key="ds1" value-ref="dataSource1"/v
 *            &lt;entry key="ds2" value-ref="dataSource2"/&gt; 
 *         &lt;entry key="ds3" value="java:comp/env/jdbc/my_ds_rc"/&gt; 
 *         &lt;/map&gt;
 *     &lt;/property&gt;
 *       &lt;property name="defaultTargetDataSource" ref="dataSource1"/&gt;
 *    &lt;/bean&gt;
 */
public abstract class DynamicDataSource extends AbstractRoutingDataSource {
	protected Object determineCurrentLookupKey() {
		return CustomerContextHolder.getCustomerType();
	}
}
